Type-Safe Model Transformation Languages as Internal DSLs in Scala
نویسندگان
چکیده
Although there are powerful model transformation languages (MTLs) like ATL, model-to-model transformations still are often implemented in general-purpose languages (GPLs) like Java, especially in EMF-based projects. Developers might hesitate to learn another language, use new tools, or they feel limited by the specific but less versatile constructs an MTL provides. However, model transformation code written in a GPL is less readable, contains redundancies or verbose expressions, and there are fewer possibilities for formal reasoning. Our approach combines some benefits of MTLs with GPL programming. We use the GPL Scala to realize MTLs similar to ATL as internal domainspecific languages. The benefits are seamless integration with EMF and state-of-the-art tool support as well as the possibility to extend MTLs and to mix MTL and GPL code. In contrast to similar approaches with dynamically typed languages like Ruby, Scala allows for static type-safety without adding syntactic clutter.
منابع مشابه
Model transformation languages for domain-specific workbenches
Domain-specific languages (DSLs) are software languages which are tailored to a specific application domain. DSLs enable domain experts to create domain-specific models, that is, high-level descriptions of domain knowledge. As any other software languages, DSLs rely on language tools which provide assistance for processing and managing domain-specific models. A domain-specific workbench is an i...
متن کاملMonitoring and programming languages
Cyrille Artho Domain-Specific Languages with Scala, and model-based testing as an example Domain-Specific Languages (DSLs) are often classified into external and internal DSLs. An external DSL is a stand-alone language with its own parser. An internal DSL is an extension of an existing programming language, the host language, offering the user of the DSL domain-specific constructs as well as th...
متن کاملSolving the TTC'14 FIXML Case Study with SIGMA
In this paper we describe a solution for the Transformation Tool Contest 2014 (TTC'14) FIXML case study using SIGMA, a family of Scala internal Domain-Specific Languages (DSLs) that provides an expressive and efficient API for model consistency checking and model transformations. We solve both the core transformation task and its three extensions.
متن کاملDomain-Specific Languages with Scala
Domain-Specific Languages (DSLs) are often classified into external and internal DSLs. An external DSL is a stand-alone language with its own parser. An internal DSL is an extension of an existing programming language, the host language, offering the user of the DSL domain-specific constructs as well as the constructs of the host language, thus providing a richer language than the DSL itself. I...
متن کاملTowards lenses for view synchronization in metamodel-based domain- specific workbenches
Model-driven engineering (MDE) advocates the use of different domainspecific languages (DSLs) for describing different aspects of a system, which is called multi-view modeling or multimodeling. Existing metamodel-based technologies like Xtext provide good support for defining a DSL and for creating a corresponding domainspecific workbench but do not support multimodeling, yet, i.e., they do not...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012